1. Field of the Invention
The present invention relates to a host channel adapter configured for communication with target channel adapters in an InfiniBand(trademark) server system, and more particularly to the servicing by the host channel adapter of work notifications, also referred to as xe2x80x9cdoorbellsxe2x80x9d, that notify the host channel adapter of work queue entries to be serviced.
2. Background Art
Networking technology has encountered improvements in server architectures and design with a goal toward providing servers that are more robust and reliable in mission critical networking applications. In particular, the use of servers for responding to client requests has resulted in a necessity that servers have an extremely high reliability to ensure that the network remains operable. Hence, there has been a substantial concern about server reliability, accessibility, and serviceability.
In addition, processors used in servers have encountered substantial improvements, where the microprocessor speed and bandwidth have exceeded the capacity of the connected input/output (I/O) buses, limiting the server throughput to the bus capacity. Accordingly, different server standards have been proposed in an attempt to improve server performance in terms of addressing, processor clustering, and high-speed I/O.
These different proposed server standards led to the development of the InfiniBand(trademark) Architecture Specification, (Release 1.0), adopted by the InfiniBand(trademark) Trade Association. The InfiniBand(trademark) Architecture Specification specifies a high-speed networking connection between end nodes (e.g., central processing units, peripherals, etc.) and switches inside a server system. Hence, the term xe2x80x9cInfiniBand(trademark) networkxe2x80x9d refers to a private system area network (SAN) that connects end nodes and switches into a cluster within a server system, enabling the sharing of cluster resources. The InfiniBand(trademark) Architecture Specification specifies both I/O operations and interprocessor communications (IPC).
A particular feature of InfiniBand(trademark) Architecture Specification is the proposed implementation in hardware of the transport layer services present in existing networking protocols, such as TCP/IP based protocols. The hardware-based implementation of transport layer services provides the advantage of reducing processing requirements of the central processing unit (i.e., xe2x80x9coffloadingxe2x80x9d processor code execution), hence offloading the operating system of the server system.
However, arbitrary hardware implementations may result in substantially costly or relatively inefficient hardware designs. One example involves the servicing of work notifications, also referred to as xe2x80x9cdoorbellsxe2x80x9d. Doorbells are generated by verbs consumers (e.g., operating system supplied agents) that post a work request, for example a work queue entry (WQE) in system memory; the verbs consumer then sends the work notification to notify the host channel adapter of the work request in system memory.
Various implementations of the doorbell operations may require the host operating system to supply relevant information in the data field of the doorbell write operation, for example in the form of double words specifying respective parameter values (e.g., xe2x80x9cSLID=12345xe2x80x9d). However, there is a concern that imposing requirements for excessive information during a doorbell write operation may impose unnecessary processing requirements on the host operating system, adversely affecting operating system performance as the number of verbs consumers increase on the order of thousands or tens of thousands.
There is a need for an arrangement that enables a host channel adapter to be implemented in an efficient and economical manner.
There also is a need for an arrangement that enables a host channel adapter to be notified of incoming work requests in response to receipt of work notifications, with minimal resource requirements by host processes configured for generating the work notifications.
These and other needs are attained by the present invention, where a host channel adapter is configured for servicing a work notification, supplied by a host process to an assigned destination address accessable by the host channel adapter, based on matching the assigned destination address with a stored notification address from one of a plurality of queue pair context entries stored within the host channel adapter. The host channel adapter receives a queue pair context entry that specifies queue pair attributes, including a notification address, based on creation of a corresponding queue pair for a host process. The queue pair, having a send queue and a receive queue, enables the host process to post a work descriptor to its corresponding send queue, and output a work notification to the host channel adapter by writing the work notification to an assigned destination address. The host channel adapter, in response to detecting the work notification stored at the assigned destination address, identifies the queue pair context entry based on matching the corresponding stored notification address with the assigned destination address, and services the work descriptor stored in the send queue based on the queue pair attributes specified in the identified queue pair context entry.
Hence, the host channel adapter can identify and service work requests stored in an assigned queue, based on identifying the queue pair context entry based on the assigned destination address used to supply the work notification to the host channel adapter. Hence, the host channel adapter can service work descriptors based solely on the destination address used to supply the work notification, minimizing host processor resource requirements and ensuring scalability for the host resources by eliminating the necessity of creating a work notification as a new data structure requiring relevant data.
One aspect of the present invention provides a method in a host channel adapter. The method includes storing a queue pair context entry that specifies, for a corresponding queue pair, queue pair attributes including a corresponding notification address, and detecting a work notification for a work descriptor and that is written to a destination address. The method also includes identifying the queue pair context entry corresponding to the work descriptor based on a match between the destination address and the corresponding notification address, and servicing the work descriptor based on the queue pair attributes specified in the identified queue pair context entry.
Another aspect of the present invention provides a channel adapter. The channel adapter includes a queue pair attributes table configured for storing queue pair context entries specifying queue pair attributes, including notification addresses, for respective queue pairs. The channel adapter also includes a host manager configured for detecting a work notification for a work descriptor and that is written to a destination address. The host manager is configured for identifying, from the queue pair attributes table, one of the queue pair context entries as corresponding to the work descriptor based on a match between the destination address and the corresponding notification address. The host manager also is configured for retrieving the work descriptor based on the queue pair attributes specified in the one queue pair context entry.
Additional advantages and novel features of the invention will be set forth in part in the description which follows and in part will become apparent to those skilled in the art upon examination of the following or may be learned by practice of the invention. The advantages of the present invention may be realized and attained by means of instrumentalities and combinations particularly pointed in the appended claims.